iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0

當我們服務了一陣子以後,可能因為種種原因,例如公司政策改變(Docker企業版收費)等,我們需要將某項技術、DB等搬遷到另一個地方,就需要做migration。

比如說我們的舊版網站要sunset了,要變成新版網站,那麼這些資料該怎麼migrate呢?

我們來看一下常見的策略吧~

Lift and Shift

將應用程式原封不動地搬到新環境,幾乎不做改變。這通常是最快速的方法,但可能無法充分利用新平台的優勢,而且有些時候無法這麼順利的整個搬移過去。

Replatform

對應用程式做一些優化或改變,以便更好地適應新環境,提升效能或擴展性,但不需要大幅修改原有架構。例如我們從自己架設的伺服器轉移到雲端上面,我們從自己的SQL DB改成cloud SQL,但應用程式的主要邏輯不會被修改到。

Refactor

重新設計和修改應用程式,完全針對新環境進行優化,充分利用新功能,提升效能或功能性,要花的時間會比前兩項可能還久一點。
例如我們決定將應用程式從VM搬移到Microsoft Azure上面並採用微服務架構,這樣就要對應用程式進行了大規模的修改,將單體式應用程式拆分為數個微服務,這樣才能利用雲端的擴展能力。

Repurchase

用新的、通常是基於雲端的解決方案取代現有應用程式,讓它們更符合當前的需求。

直接買別人做好的產品XD

Retain

由於特定的限制或需求,保留某些應用程式或系統在原有環境中不做改變。
例如製造控制系統,依賴於特殊的硬體配置,這種系統不適合搬移到雲端,由於穩定性和成本問題,決定保留系統在本地運行。

Retire

終止已經不需要或是重複的應用程式。
如果已經是過時的產品,30年前的系統,那麼很有可能已經可以被現代的許多系統給取代,那麼就可以直接淘汰它。

總結

migration是一個大議題,要怎麼樣才能確保user不會抱怨呢? 在migrate的時候資料怎麼辦? 重寫會要多久? 這些是我們可以多思考的XD


上一篇
Day 27 Mitigation Strategies - Circuit Breaker
下一篇
Day 29 Monitoring
系列文
Backend Developer的學習Roadmap30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言